Rollende exzentrische Kugel

Die Kugel

Volumen

(X={r Sin[θ]Cos[φ],r Sin[θ]Sin[φ],r Cos[θ]})//MatrixForm;

Vo=Integrate[ (r^2) Sin[θ],{θ,0,α},{φ,0,2 π},{r,0,R}]

Vu=Integrate[ (r^2) Sin[θ],{θ,α,π},{φ,0,2 π},{r,0,R}]

Masse und Schwerpunkt

mo= Vo ρo

mu= Vu ρu

m=mo+mu//FullSimplify

(So=(1/Vo)Integrate[ (r^2) Sin[θ]X,{θ,0,α},{φ,0,2 π},{r,0,R}])//MatrixForm

(Su=(1/Vu)Integrate[ (r^2) Sin[θ]X,{θ,α,π},{φ,0,2 π},{r,0,R}])//MatrixForm

(S=((mo So + mu Su)/m))//FullSimplify//MatrixForm

s=Abs[S[[3]]]//FullSimplify;

Trägheitstensor

Jo[i_,j_]=Integrate[ (r^2)Sin[θ] ρo((X.X)KroneckerDelta[i,j]-X.UnitVector[3,i]*X.UnitVector[3,j]),{φ,0,2 π},{θ,0,α},{r,0,R}];
(JO=Array[Jo,{3,3}])//MatrixForm

Ju[i_,j_]=Integrate[ (r^2)Sin[θ] ρu((X.X)KroneckerDelta[i,j]-X.UnitVector[3,i]*X.UnitVector[3,j]),{φ,0,2 π},{θ,α,π},{r,0,R}];
(JU=Array[Ju,{3,3}])//MatrixForm

(JE=JO+JU)//MatrixForm

Jk[i_,j_]=Integrate[ (r^2)Sin[θ]ρo((S.S)KroneckerDelta[i,j]-S.UnitVector[3,i]*S.UnitVector[3,j]),{φ,0,2 π},{θ,0,α},{r,0,R}]+Integrate[ (r^2)Sin[θ]ρu((S.S)KroneckerDelta[i,j]-S.UnitVector[3,i]*S.UnitVector[3,j]),{φ,0,2 π},{θ,α,π},{r,0,R}];
(JK=Array[Jk,{3,3}])//MatrixForm

Satz von Steiner

(J=JE-JK)//FullSimplify//MatrixForm

(J=J)//N//MatrixForm

Lagrangefunktion

Parametrisierung, Geschwindigkeiten und Normalkraft

z[t_]=R-ϵ Cos[θ[t]];
d[t_]={ϵ Sin[θ[t]],0,-z[t]};
ω={0,D[θ[t],t],0};
vs={x'[t],0,z'[t]};

Vp=vs+ω\[Cross]d[t];
Vp//MatrixForm

V=Vp[[1]];

FN=M g - M D[(ω\[Cross]d[t])[[3]],t]//FullSimplify

-M g +M D[z[t],{t,2}]//FullSimplify

Kinetische Energie

T=(1/2)M(((D[x[t],t])^2)+((D[z[t],t])^2))+(1/2)A ω.ω//FullSimplify

Potentielle Energie

U=M g z[t]

Generalisierte Kräfte

Dissθ=-μ FN D[(1/2)((((Sqrt[(V^2)])))^2),θ'[t]]//FullSimplify

Dissx=-μ FN D[(1/2)((((Sqrt[(V^2)])))^2),x'[t]]//FullSimplify

Lagrangefunktion

ℒ=T-U//FullSimplify

Lagrangegleichungen

Lagrange={D[D[ℒ, θ'[t]],t]-D[ℒ,θ[t]]==0,D[D[ℒ, x'[t]],t]-D[ℒ, x[t]]==0}//FullSimplify;
Lagrange//MatrixForm

LagrangeDiss[μ_]={
D[D[ℒ, θ'[t]],t]-D[ℒ,θ[t]]-Dissθ==0
,D[D[ℒ, x'[t]],t]-D[ℒ, x[t]]-Dissx==0}/.((a_)/(Sqrt[((a_)^2)]))->Sign[a]//FullSimplify;
LagrangeDiss[μ]//MatrixForm

Bewegungsgleichungen

Conditions={g->9.81,A->J[[2,2]],M->m,ϵ->s,R->1,ρo->1,ρu->2,α->((2 π)/3)};

Ohne Reibung

solNor[ω0_]:=solDiss[ω0]=NDSolve[{Lagrange/.Conditions/.Conditions,x[0]==0,  x'[0]==0,θ[0]==0,θ'[0]==ω0},{x[t],θ[t]},{t,0,100}][[1]]//FullSimplify
varsNor={x[t],θ[t]};

Mit Reibung

solDiss[ω0_,μ_]:=solDiss[ω0,μ]=NDSolve[{LagrangeDiss[μ]/.Conditions/.Conditions,x[0]==0,  x'[0]==0,θ[0]==0,θ'[0]==ω0},{x[t],θ[t]},{t,0,100}][[1]]//FullSimplify
vars={x[t],θ[t]};

veloc:=D[sol,t];
Manipulate[
sol=vars/.solDiss[ω0,μ];

solp=If[v,veloc,sol];
Plot[solp,{t,0,50},AxesLabel->{t},PlotLegends->Placed[{If[v,"velocity in x-direction","distance in x-direction"],If[v,"angular velocity ω","angle θ[t]"]},Above],PlotRange->All]
,{{ω0,6.5},0,10,0.0001, Appearance -> "Labeled"},{{μ,0.03},0,0.1, Appearance -> "Labeled"},{{v,False,"velocity"},{False,True}}]

FNSol[t_]=FN/.solDiss[7,0.03]/.D[solDiss[7,0.03],t]/.D[solDiss[7,0.03],{t,2}]/.Conditions/.Conditions;
Plot[{FNSol[t],m g /.Conditions},{t,0,20},PlotRange->All,PlotStyle->{Automatic,Dashed}]

Animation

{αA=α,RA=R,ϵA=ϵ}/.Conditions/.Conditions;
Rad[x_,θ_,xmx_]:=Graphics[{{Rotate[{{Blue,Disk[{x+ϵA Sin[θ],RA},RA,{(π/2)+αA,(π/2)-αA}]},{Red,Disk[{x+ϵA Sin[θ],RA},RA,{(π/2)+αA,((5π)/2)-αA}]}},-θ]},
{Thick,LightBlue,Rectangle[{-RA,-RA/2},{xmx+2RA,0}]}},PlotRange->{{-1RA,xmx+2RA},{-2RA,3RA}},ImageSize->Large]/.Conditions/.Conditions;

tmax=20;
ω0inert=6.5; (*Anfansrotation*)
μinert=0.03; (*≈Stahl auf Eis*)
xsolDiss[t_]=solDiss[ω0inert,μinert][[1,2]];
θsolDiss[t_]=solDiss[ω0inert,μinert][[2,2]];
xsolNor[t_]=solNor[ω0inert][[1,2]];
θsolNor[t_]=solNor[ω0inert][[2,2]];
Manipulate[
If[Reibung,Rad[xsolDiss[t],θsolDiss[t],xsolDiss[tmax]],Rad[xsolNor[t],θsolNor[t],xsolNor[tmax]]]
,Style["exzentrische Stahlkugel auf Eis","Title",18,Bold],{t,0,tmax,AnimationRate->1.5, ControlType -> Animator,AnimationRunning->False},{{Reibung,True},{True,False}}]